#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    // string reverseWords(string s)
    // {
    //     string res;
    //     string word;
    //     int length = s.size();
    //     int start = 0;
    //     int end = 0;
    //     for (int i = 0; i < length; i++)
    //     {
    //         if ((s[i] != ' ' && i == 0) || (s[i] != ' ' && s[i - 1] == ' '))
    //         {
    //             start = i;
    //         }
    //         if ((s[i] != ' ' && i == length - 1) || (s[i] != ' ' && s[i + 1] == ' '))
    //         {
    //             end = i;
    //             word = s.substr(start, end - start + 1) + ' ';
    //             res = word + res;
    //         }
    //     }
    //     res.resize(res.size() - 1);
    //     return res;
    // }

    void remove_blank(string &s)
    {
        int slow = 0;
        int fast = 0;
        int length = s.size();
        while (fast < length && s[fast] == ' ')
        {
            fast++;
        }

        for (; fast < length; fast++)
        {
            if (s[fast] != ' ')
            {
                if (fast == length - 1 || s[fast + 1] == ' ')
                {
                    s[slow++] = s[fast++];
                    s[slow++] = ' ';
                }
                else
                {
                    s[slow++] = s[fast];
                }
            }
        }
        s.resize(slow - 1);
    }

    void reverse(string &s, int start, int end)
    {
        for (; start < end; start++, end--)
        {
            swap(s[start], s[end]);
        }
    }

    string reverseWords(string s)
    {
        remove_blank(s);
        reverse(s, 0, s.size() - 1);
        int start = 0;
        int length = s.size();
        for (int i = 0; i < length; i++)
        {
            if (i == length - 1 || (s[i] != ' ' && s[i + 1] == ' '))
            {
                int end = i;
                reverse(s, start, end);
                start = end + 2;
            }
        }
        return s;
    }
};

int main()
{
    string str;
    while (getline(cin, str))
    {
        Solution sol;
        cout << sol.reverseWords(str) << endl;
    }
    return 0;
}